console.log('devtools.js')

// 在开发者工具中创建面板
chrome.devtools.panels.create('MyPanel', "images/get_started16.png", "panel.html", function (panel) {
    // 开发者工具中无法输出任何内容，必须在 inspectedWindow 中执行命令。
    chrome.devtools.inspectedWindow.eval('console.log("Dev Panel Created!")');
})

// 连接到后台
let backgroundPageConnection = chrome.runtime.connect({
    name: "devtools-page"   // 说明此链接的名称
});

backgroundPageConnection.onMessage.addListener(function (message) {
    // 处理后台网页响应
    chrome.devtools.inspectedWindow.eval(
        `console.log("${message}")`
    )
});

chrome.devtools.network.onRequestFinished.addListener(
    function (request) {
        if (request.request && request.request.url) {
            chrome.devtools.inspectedWindow.eval(`
            console.log("URL：${request.request.url}");
            `);
            if (request.response.content != undefined) {
                chrome.devtools.inspectedWindow.eval(`
                console.log("mimeType：${request.response.content.mimeType}, content: ${request.response.content}");
                `);
                if (request.response.content.mimeType == "application/json") {
                    chrome.devtools.inspectedWindow.eval(`
                    console.log("bodySize：${request.response.bodySize}");
                    `);
                    // if (request.response.bodySize) {    // 不知为何bodySize总是0

                    request.getContent((content, encoding) => {
                        chrome.devtools.inspectedWindow.eval(`console.log("获取到内容！");`);

                        // if (content == undefined) {
                        //     chrome.devtools.inspectedWindow.eval(`console.log("但是内容为空！");`);
                        // }
                        chrome.devtools.inspectedWindow.eval(`console.log("编码方式：${encoding}");`);
                        // chrome.devtools.inspectedWindow.eval(`console.log("content length：${content.length}, encoding: ${encoding}"`);
                        // chrome.devtools.inspectedWindow.eval(`console.log("content：${JSON.parse(content)}"`);
                    });
                    // }
                }

                // chrome.devtools.inspectedWindow.eval(`
                // console.log("返回体类型：'${request.response.content.mimeType}', 内容大小： '${request.response.content.size}', 编码：'${request.response.content.encoding}'")
                // `);

                // 不是base64一定就是文本了！
                // if (request.response.content.encoding != "base64") {
                //     chrome.devtools.inspectedWindow.eval(`
                // console.log("文本型内容：'${request.response.content.text}'")
                // `);
                // }
            }
        }
    }
);